/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.component.gateway.dianlan.facade.command.order;

import info.peigen.hotpot.common.core.enums.NetworkConnectType;
import info.peigen.hotpot.common.core.enums.StubType;
import info.peigen.hotpot.component.gateway.dianlan.facade.command.order.base.AbstractDianlanServiceOrder;
import jakarta.validation.constraints.NotEmpty;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

import static info.peigen.hotpot.common.core.enums.StubType.Direct;

/**
 * <b>(DianlanLoginOrder)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2022/8/25
 */
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@Data
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class DianlanLoginOrder extends AbstractDianlanServiceOrder {
    @NotEmpty
    String   stubNo;
    @Builder.Default
    StubType type = Direct;
    /** socket 会话Id */
    String             sessionId;
    /** 通信协议版本 */
    String             protocolVersion;
    /** 程序版本 */
    String             programVersion;
    /** 网络链接类型 */
    NetworkConnectType networkConnectType;
}